import 'dart:io';

import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:zrjz/comm/constants/app_constant.dart';
import 'package:zrjz/comm/service/config.dart';
import 'package:zrjz/comm/utils/device_utils.dart';
import 'package:zrjz/comm/utils/log_utils.dart';
import 'package:get/get.dart';

/*
   初始化 AppPackageInfo 应用信息获取，初始化 DeviceInfo 设备信息获取
   全局一些服务的注入，用于一些 Config 信息的保存。
 */
class ServicesInjection {
  /// android 设备信息
  static AndroidDeviceInfo? androidDeviceInfo;

  /// ios 设备信息
  static IosDeviceInfo? iosDeviceInfo;

  /// 包信息
  static PackageInfo? packageInfo;

  /// 是否 release  包（生产环境）
  static bool get isRelease => const bool.fromEnvironment("dart.vm.product");

  /// init
  static Future init() async {
    Log.d('----global初始化------start-----');

    // device_info_plus插件获取设备信息
    DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
    if (Device.isIOS) {
      ServicesInjection.iosDeviceInfo = await deviceInfoPlugin.iosInfo;
    } else if (Device.isAndroid) {
      ServicesInjection.androidDeviceInfo = await deviceInfoPlugin.androidInfo;
    }

    // package_info 插件获取到App的包信息
    ServicesInjection.packageInfo = await PackageInfo.fromPlatform();

    // 一些配置信息的全局单例保存 (国际化、版本信息、设备信息、主题（暗黑/明亮）)
    Get.put<ConfigService>(ConfigService());

  }

  // 获取当前Android设备的Android版本
  static int getAndroidSdkInt() {
    if (Device.isAndroid) {
      return androidDeviceInfo?.version.sdkInt ?? -1;
    } else {
      return -1;
    }
  }
}
